Start-up sequence for hvac controller

ABSTRACT

In some examples, a device can control an HVAC system within a building. Includes an analog display including a set of markers, and where each marker of the set of markers corresponds to a respective parameter value of a parameter associated with the building; an electric motor; a pointer connected to the electric motor, where the electric motor is configured to rotate the pointer within a pointer range from a lower limit to an upper limit; and processing circuitry. The processing circuitry is configured to: determine a position of the electric motor while the pointer is positioned at one of the lower limit or the upper limit of the pointer range; and calibrate, a position function corresponding to the electric motor.

This application claims the benefit of U.S. Provisional Patent Application No. 62/958,105, filed Jan. 7, 2020, the entire content of which is incorporated herein by reference.

TECHNICAL FIELD

The disclosure relates to heating, ventilation, and air condition (HVAC) systems and thermostats for buildings.

BACKGROUND

A heating, ventilation, and air conditioning (HVAC) controller can control a variety of devices such as a furnace, a heat pump including a geothermal heat pump, a boiler, air conditioning unit, forced air circulation, and other similar equipment to control the internal climate conditions of a building. In some examples, a thermostat can control different devices depending on the outside temperature, temperature inside the building, the time of day, and other factors. Environmental control systems may also include evaporative cooling systems as well as other systems such as window mounted heat exchangers and two-part heat exchangers, which may be used for heating or cooling building spaces.

SUMMARY

In general, this disclosure describes an HVAC controller including a display which can show a set point temperature for an area, a current temperature of the area, and one or more other parameters. In some examples, the HVAC controller may include an analog display including a set of markers and a pointer connected to an electric motor. The electric motor may set a position of the pointer to indicate, or “point,” at a marker corresponding to a current temperature of the area. In some examples, the HVAC controller may additionally or alternatively indicate one or more set point temperatures for the area and one or more other parameters such as an air quality value, a humidity value, a water consumption value, a power consumption value, a current time, or any combination thereof.

The HVAC controller may perform a start-up sequence in response to transitioning from a deactivated state to an activated state. The start-up sequence may include a calibration of a position function corresponding to the electric motor such that the electric motor may place the pointer to accurately indicate a parameter value (e.g., a temperature value). Additionally, or alternatively, the start-up sequence may include a selective activation and/or a selective deactivation of one or more light-emitting diodes (LEDs) of the HVAC controller.

It may be beneficial to calibrate the position function so that the HVAC controller may control the pointer in order to accurately indicate the parameter value. The HVAC controller may perform the calibration during the start-up sequence in order to ensure that the HVAC controller accurately indicates the parameter value each time that the HVAC controller transitions from a deactivated state to an activated state. In some cases, when the HVAC controller deactivates, the position of the electric motor may become de-calibrated.

In some examples, a device controls a heating, ventilation, and air conditioning (HVAC) system within a building, the device comprising: an analog display comprising a set of markers, wherein each marker of the set of markers corresponds to a respective parameter value of a parameter associated with the building; an electric motor; a pointer connected to the electric motor, wherein the electric motor is configured to rotate the pointer within a pointer range from a lower limit to an upper limit; and processing circuitry. The processing circuitry is configured to: determine a position of the electric motor while the pointer is positioned at one of the lower limit or the upper limit of the pointer range; and calibrate, based on the position of the electric motor while the pointer is positioned at the one of the lower limit or the upper limit, a position function corresponding to the electric motor to configure the electric motor to move the pointer to indicate the respective parameter value of the parameter associated with the building.

In some examples, a device controls a heating, ventilation, and air conditioning (HVAC) system within a building, the device comprising: an analog display comprising a set of markers, wherein each marker of the set of markers corresponds to a respective parameter value of a parameter associated with the building; an electric stepper motor; a pointer connected to the electric stepper motor, wherein the electric stepper motor is configured to rotate the pointer within a pointer range from a lower limit to an upper limit; and processing circuitry. The processing circuitry is configured to cause the electric stepper motor to position the pointer at one of the lower limit or the upper limit of the pointer range; determine an initial value for the parameter; and cause the electric stepper motor to move the pointer from the one of the lower limit or the upper limit of the pointer range to the marker corresponding to the determined initial value for the parameter.

In some examples, a method includes determining, by processing circuitry, a position of an electric motor while a pointer is positioned at one of the lower limit or the upper limit of the pointer range, wherein the pointer is connected to the electric motor, and wherein the electric motor is configured to rotate the pointer within a pointer range from a lower limit to an upper limit; and calibrating, by the processing circuitry based on the position of the electric motor while the pointer is positioned at the one of the lower limit or the upper limit, a position function corresponding to the electric motor to configure the electric motor to move the pointer to indicate the respective parameter value of the parameter associated with the building, wherein an analog display comprises a set of markers, and wherein each marker of the set of markers corresponds to a respective parameter value of a parameter associated with the building.

The summary is intended to provide an overview of the subject matter described in this disclosure. It is not intended to provide an exclusive or exhaustive explanation of the systems, device, and methods described in detail within the accompanying drawings and description below. Further details of one or more examples of this disclosure are set forth in the accompanying drawings and in the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram illustrating an example heating, ventilation, and air conditioning (HVAC) system in a building, in accordance with one or more techniques described herein.

FIG. 2 is a block diagram illustrating an example HVAC controller including a dial and an analog display, in accordance with one or more techniques described herein.

FIG. 3A is a conceptual diagram illustrating a front view of the controller of FIG. 2, in accordance with one or more techniques described herein.

FIG. 3B is a conceptual diagram illustrating an example perspective view of the controller of FIG. 2, in accordance with one or more techniques described herein.

FIG. 4 is a conceptual diagram illustrating a sequence of configurations of a controller for calibrating the controller, in accordance with one or more techniques described herein.

FIG. 5 is a conceptual diagram illustrating a first configuration and a second configuration of a lighting process, in accordance with one or more techniques described herein.

FIG. 6 is a flow diagram illustrating an example process for calibrating a controller, in accordance with one or more techniques described herein.

DETAILED DESCRIPTION

FIG. 1 is a block diagram illustrating an example heating, ventilation, and air conditioning (HVAC) system 10 in a building 12, in accordance with one or more techniques described herein. HVAC system 10 includes HVAC component(s) 16, a supply air duct 20, a return air duct 22 (collectively, “ducts 20, 22”), dampers 24, and air filters 26. Additionally, HVAC system 10 includes an HVAC controller 30 configured to control HVAC component(s) 16 to regulate one or more parameters within building 12. HVAC controller 30 may include a dial 32 and an analog display 34.

HVAC system 10 may include one or more devices for regulating an environment within building 12. For example, HVAC controller 30 may be configured to control the comfort level (e.g., temperature and/or humidity) in building 12 by activating and deactivating HVAC component(s) 16 in a controlled manner. HVAC controller 30 may be configured to control HVAC component(s) 16 via a wired or wireless communication link 38. In some examples, a wired communication link 38 may connect HVAC component(s) 16 and HVAC controller 30. HVAC controller 30 may be a thermostat, such as, for example, a wall mountable thermostat. In some examples, HVAC controller 30 may be programmable to allow for user-defined temperature set points to control the temperature of building 12. Based on sensed temperature of building 12, HVAC controller 30 may turn on HVAC component(s) 16 or turn off HVAC component(s) 16 in order to reach the user-defined temperature set point. Although this disclosure describes HVAC controller 30 (and controllers shown in other figures) as controlling HVAC component(s) 16, external computing device 36 may also be configured to perform these functions. The techniques of this disclosure will primarily be described using examples related to temperature, but the systems, devices, and methods described herein may also be used in conjunction with other sensed properties, such as humidity or air quality. In some examples, HVAC controller 30 may be configured to control all of the critical networks of a building, including a security system.

HVAC component(s) 16 may provide heated air (and/or cooled air) via the ductwork throughout the building 12. As illustrated, HVAC component(s) 16 may be in fluid communication with one or more spaces, rooms, and/or zones in building 12 via ducts 20, 22, but this is not required. In operation, when HVAC controller 30 outputs a heat call signal to HVAC component(s) 16, HVAC component(s) 16 (e.g., a forced warm air furnace) may turn on (begin operating or activate) to supply heated air to one or more spaces within building 12 via supply air ducts 20. HVAC component(s) 16, which include an air movement device 18 (e.g., a blower or a fan), can force the heated air through supply air duct 20. In this example, cooler air from each space returns to HVAC component(s) 16 (e.g. forced warm air furnace) for heating via return air ducts 22. Similarly, when a cool call signal is provided by HVAC controller 30, a cooling device (e.g., an air conditioning (AC) unit) of HVAC component(s) 16 may turn on to supply cooled air to one or more spaces within building 12 via supply air ducts 20. Air movement device 18 may force the cooled air through supply air duct 20. In this example, warmer air from each space of building 12 may return to HVAC component(s) 16 for cooling via return air ducts 22.

In some examples, HVAC component(s) 16 may include any one or combination of a fan, a blower, a furnace, a heat pump, an electric heat pump, a geothermal heat pump, an electric heating unit, an AC unit, a humidifier, a dehumidifier, an air exchanger, an air cleaner, a damper, a valve, and a fan, however this is not required. HVAC component(s) 16 may include any device or group of devices which contributes to regulating the environment within building 12 based on signals received from HVAC controller 30 or contributes to regulating the environment within building 12 independently from HVAC controller 30.

Ducts 20, 22 may include one or more dampers 24 to regulate the flow of air, but this is not required. For example, one or more dampers 24 may be coupled to HVAC controller 30 and can be coordinated with the operation of HVAC component(s) 16. HVAC controller 30 may actuate dampers 24 to an open position, a closed position, and/or a partially open position to modulate the flow of air from the one or more HVAC components to an appropriate room and/or space in building 12. Dampers 24 may be particularly useful in zoned HVAC systems, and may be used to control which space(s) in building 12 receive conditioned air and/or receives how much conditioned air from HVAC component(s) 16.

In many instances, air filters 26 may be used to remove dust and other pollutants from the air inside building 12. In the example shown in FIG. 1, air filters 26 is installed in return air duct 22 and may filter the air prior to the air entering HVAC component(s) 16, but it is contemplated that any other suitable location for air filters 26 may be used. The presence of air filters 26 may not only improve the indoor air quality but may also protect the HVAC component(s) 16 from dust and other particulate matter that would otherwise be permitted to enter HVAC component(s) 16.

HVAC controller 30 may include any suitable arrangement of hardware, software, firmware, or any combination thereof. For example, HVAC controller 30 may include processing circuitry comprising microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or equivalent discrete or integrated logic circuitry, or a combination of any of the foregoing devices or circuitry. Accordingly, the processing circuitry may include any suitable structure, whether in hardware, software, firmware, or any combination thereof, to perform the functions ascribed herein to HVAC controller 30.

Although not shown in FIG. 1, HVAC controller 30 may include a memory configured to store information within HVAC controller 30 during operation. The memory may include a computer-readable storage medium or computer-readable storage device. In some examples, the memory includes one or more of a short-term memory or a long-term memory. The memory may include, for example, random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), magnetic discs, optical discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable memories (EEPROM). In some examples, the memory is used to store program instructions for execution by the processing circuitry of HVAC controller 30. In some examples, the memory of HVAC controller 30 may be able to store data to and read data from memory included in external computing device 36 and/or memory included in external database 48. The memory may be used for storing network settings such as an Internet Protocol (IP) address and/or a Media Access Control (MAC) address of HVAC controller 30, external computing device 36, and/or a router.

In some examples, HVAC controller 30 may include a set of wire terminals which make up a terminal block (e.g., a wall plate or a terminal plate) for receiving a set of control wires for one or more HVAC component(s) 16 of HVAC system 10. The memory of HVAC controller 30 may store one or more wiring configurations for HVAC component(s) 16, allowing HVAC controller 30 to determine which of HVAC component(s) 16 are connected to HVAC controller 30. The memory of HVAC controller 30 may also store settings for HVAC system 10 which correspond to the one or more wiring configurations for HVAC component(s) 16. For example, if HVAC controller 30 is wired to an AC unit of HVAC component(s) 16, HVAC controller 30 may determine one or more settings for controlling the AC unit to turn on and turn off.

In some examples, the memory of HVAC controller 30 may store program instructions, which may include one or more program modules, which are executable by HVAC controller 30. When executed by HVAC controller 30, such program instructions may cause HVAC controller 30 to provide the functionality ascribed to it herein. The program instructions may be embodied in software, firmware, and/or RAMware.

In some examples, HVAC controller 30 may include a dial 32 which is located at an outer circumference of HVAC controller 30. HVAC controller 30 may be fixed to a wall or another surface such that dial 32 may be rotated relative to one or more other components (e.g., analog display 34) of HVAC controller 30. Dial 32 may represent a user interface such that processing circuitry of HVAC controller 30 may receive, dial 32 and/or dial circuitry electrically connected to dial 32, information indicative of a user input. In some examples, the user input may represent a user selection of a set point parameter value (e.g., a set point temperature), a user selection of information to be displayed by HVAC controller 30, or a user selection of another setting. In some examples, dial 32 may smoothly rotate with respect to analog display 34. In some examples, dial 32 may rotate with one or more positions such that as dial 32 rotates, dial 32 “snaps” into position after every interval of rotational distance. In some examples, dial 32 may smoothly rotate with respect to analog display 34 and HVAC controller 30 may output an audio signal (e.g., a clicking noise) for every interval of rotational position (e.g., every one degree) in which dial 32 rotates.

In some examples, dial 32 does not move inwards in response to a force applied to dial 32. For example, dial 32 may rotate about a center axis which passes through a center of dial 32 without moving along the center axis in response to one or more forces applied to dial 32. When HVAC controller 30 is mounted on a vertical surface such as a wall, HVAC controller 30 may prevent dial 32 from depressing inwards towards the vertical surface while allowing the dial 32 to rotate.

In some examples, dial 32 may include a set of light-emitting diodes (LEDs) configured to illuminate a portion or a whole of dial 32, but this is not required. The processing circuitry of HVAC controller 30 may selectively illuminate one or more LEDs of the set of LEDs in order to indicate a set point temperature or convey other information. In some examples, the set of LEDs included in dial 32 may illuminate dial 32 to indicate that HVAC system 10 is in a heating or indicate that HVAC system 10 is cooling. For example, when HVAC system 10 is heating (e.g., HVAC controller 30 is outputting one or more instructions for HVAC component(s) 16 to increase a temperature within building 12), the LEDs of dial 32 cause dial 32 to illuminate at a first color. When HVAC system 10 is cooling (e.g., HVAC controller 30 is outputting one or more instructions for HVAC component(s) 16 to decrease a temperature within building 12), the LEDs of dial 32 cause dial 32 to illuminate at a second color. In this way, the LEDs of dial 32 may indicate whether HVAC system 10 is operating in heating or cooling.

Analog display 34 may include information relating to one or more aspects of an area in which HVAC controller 30 is located (e.g., a room in which HVAC controller 30 is located, a building in which HVAC controller 30 is located, an area outside of a building in which HVAC controller 30 is located, or any combination thereof). Analog display 34 may be round in shape and analog display 34 may be located an area within a circumference of dial 32 such that edges of dial 32 are visible around an outer circumference of analog display 34. At least part of dial 32 and analog display 34 may represent an outer surface of HVAC controller 30. In some cases, HVAC controller 30 may receive user input to one or both of dial 32 and analog display 34.

A user may interact with HVAC controller 30 through a mobile phone, a tablet, a computer, or another device. For example, user devices 8A-8N (collectively, “user devices 8”) may communicate with HVAC controller 30 via network 6. HVAC controller 30 may, in some examples, be configured to communicate directly with network 6 without communicating with network 6 via a gateway device (e.g., a Wi-Fi router) within building 12. In some examples, HVAC controller 30 may receive instructions from one or more of user devices 8. The instructions may include, for example, a request to change a set point temperature for an area within building 12. HVAC controller 30 may change the set point temperature in response to receiving the instruction. In turn, HVAC controller 30 may control HVAC component(s) 16 to control the temperature within building 12 to reach the new set point.

In some examples, responsive to detecting a rotation of dial 32 while HVAC controller 30 is in the idle state, HVAC controller 30 transitions out of the idle state to a set point state. HVAC controller 30 may change a temperature set point for an area within building 12 in response to detecting the rotation of dial 32. In other words, HVAC controller 30 may determine that a rotation of dial 32 while HVAC controller 30 is in the idle state represents a user request to change a temperature set point. In transitioning out of the idle state, the processing circuitry of HVAC controller 30 may display the temperature set point for the area within building 12 on analog display 34. Additionally, HVAC controller 30 may display the temperature set point changing as dial 32 rotates. For example, the analog display 34 may show the temperature setpoint cycle through a range of degrees, where each change from one degree to another degree is reflected on analog display 34. In some examples, HVAC controller 30 may emit a noise each time the temperature set point changes from one degree value to another degree value. The noise may represent a clicking noise, a tapping noise, or another type of noise.

In some examples, HVAC controller 30 may control HVAC components 16 based on more than one set points. For example, HVAC controller 30 may determine whether one or both of a first set point mode and a second set point mode is activated. In some examples, the first set point mode represents a cooling temperature set point mode and the second set point mode represents a heating set point mode. In the cooling set point mode, the HVAC controller 30 may be configured to change a cooling set point, and in the heating set point mode, the HVAC controller 30 may be configured to change a heating set point. A cooling set point may represent a temperature set point for controlling HVAC components 16 to decrease or maintain a temperature within building 12 as compared with a temperature outside of building 12. A heating set point may represent a temperature set point for controlling HVAC components 16 to increase or maintain a temperature within building 12 as compared with a temperature outside of building 12.

In some examples, HVAC controller 30 is configured to receive user input representing an instruction to enter the first set point mode. In some examples, HVAC controller 30 is configured to receive user input representing an instruction to enter the second set point mode. HVAC controller 30 may enter the second set point mode in response to receiving user input representing a request to enter the second set point mode. For example, HVAC controller 30 may deactivate the first set point mode and activate the second set point mode in response to receiving information indicative of a user input to a mode button representing a request to enter the second set point mode. Alternatively, HVAC controller 30 may enter the first set point mode in response to receiving user input representing a request to enter the first set point mode. For example, HVAC controller 30 may deactivate the second set point mode in response to receiving information indicative of a user input to a mode button representing a request to enter the first set point mode.

HVAC controller 30 is configured to cause, based on the first set point mode being activated, the first set point of the device to change in response to receiving a rotation input to dial 32. Additionally, HVAC controller 30 is configured to cause, based on the second set point mode being activated, the second set point of the device to change in response to receiving a rotation input to dial 32. In this way, HVAC controller 30 may control one or both of the first set point and the second set point to change based on a rotation input to dial 32.

HVAC controller 30 may, in some cases, perform one or more actions which represent a “start-up sequence.” In some examples, HVAC controller 30 may execute the start-up sequence in response to detecting a transition of HVAC controller 30 from an activated state to a deactivated state. For example, if HVAC controller 30 is turned on, allowing HVAC controller 30 to perform one or more actions which HVAC controller 30 does not perform when turned off, HVAC controller 30 may perform the start-up sequence. In some examples, the start-up sequence may include a calibration of a position function corresponding to the electric motor of HVAC controller 30. In some examples, the start-up sequence may include a selective activation and/or a selective deactivation of one or more LEDs of HVAC controller 30.

In some examples, the electric motor of HVAC controller 30 represents a stepper motor which is configured to occupy a set of positions, where the number of positions in the set of positions is predetermined for the stepper motor. When the electric motor rotates from one position of the set of positions to an adjacent position of the set of positions, this rotation is referred to as a “step.” For example, a stepper motor may be configured to occupy 360 positions, one position per rotational degree. In this example, the stepper motor would occupy each of the 360 positions to perform one full rotation. It is not required for an electric motor to include 360 positions per one rotation. A stepper motor may include any number of positions per rotation. As long as HVAC controller 30 is configured to determine the number of positions per rotation, HVAC controller 30 may be configured to determine a number of positions in which to rotate the electric motor in order to achieve a certain amount of rotation. For example, HVAC controller 30 may receive information indicative of a request to rotate the electric motor clockwise by 20% of a full rotation. Based on the known number of positions per rotation, HVAC controller 30 may calculate the number of positions which corresponds to 20% of a full rotation and output an instruction to rotate the electric motor clockwise by the calculated number of positions.

Although HVAC controller 30 may be configured to determine a relative number of positions in which to rotate the electric motor, in some cases, HVAC controller 30 might not be able to immediately determine, after an activation of HVAC controller 30, a relative rotational position of the electric motor in relation to the set of analog markers located on the analog display. HVAC controller 30 may be configured to perform a calibration process in order to determine the relative rotational position of the stepper motor in relation to the set of analog markers on the analog display. In some examples, the electric motor may be coupled to a pointer extending radially from a center of HVAC controller 30 such that the electric motor is configured to control a rotation of the pointer. As an example, the pointer may be fixed to the electric motor or fixed to a component which is fixed to the electric motor such that the pointer rotates with the electric motor. In such an example, a 20-degree rotation of the electric motor may correspond to a 20-degree rotation of the pointer. The pointer may be configured to indicate any one of the set of analog markers. By controlling the electric motor, HVAC controller 30 may be configured to set the marker of the set of analog markers which the pointer indicates.

In some examples, HVAC controller 30 may include one or more physical barriers which prevent the pointer, and by extension the electric motor, from performing a full rotation. For example, the one or more physical barriers may confine the pointer to rotating within a pointer range. In some examples, the pointer range may correspond to a physical range of the set of analog markers on the analog display of HVAC controller 30. A lower limit of the pointer range may correspond to a first marker of the set of markers and an upper limit of the pointer range may correspond to a last marker of the set of markers. The set of markers corresponds to a range of parameter values such that each marker of the set of markers corresponds to a respective parameter value of the range of parameter values. In this way, the lower limit of the pointer range corresponds to a lower limit of the range of parameter values and an upper limit of the pointer range corresponds to an upper limit of the range of parameter values. This information, in some cases, may be used during the calibration process in order to determine the relative rotational position of the electric motor in relation to the set of analog markers located on the analog display.

In order to perform the calibration process, processing circuitry of HVAC controller 30 may output a signal causing the electric motor to rotate to one or both of the lower limit of the pointer range and the upper limit of the pointer range. In some examples, HVAC controller 30 may output a signal causing the electric motor and the pointer to rotate to the upper limit of the pointer range. A physical barrier may prevent the electric motor and the pointer from rotating beyond the upper limit of the pointer range. Moreover, the processing circuitry of HVAC controller 30 may determine that a rotational position of the electric motor corresponds to the upper limit of the pointer range in response to determining that an attempt to rotate the electric motor beyond the upper limit of the pointer range is unsuccessful. In turn, the processing circuitry may save the rotational position (e.g., the step) of the electric motor which corresponds to the upper limit of the pointer range and thus corresponds to the upper limit of the range of parameter values denoted by the set of markers.

Subsequent to determining the rotational position of the electric motor which corresponds to the upper limit of the pointer range, in some cases, the processing circuitry of HVAC controller 30 may be configured to output a signal causing the electric motor and the pointer to rotate to the lower limit of the pointer range. A physical barrier may prevent the electric motor and the pointer from rotating beyond the lower limit of the pointer range. Moreover, the processing circuitry of HVAC controller 30 may determine that a rotational position of the electric motor corresponds to the lower limit of the pointer range in response to determining that an attempt to rotate the electric motor beyond the lower limit of the pointer range is unsuccessful. In turn, the processing circuitry may save the rotational position (e.g., the step) of the electric motor which corresponds to the lower limit of the pointer range and thus corresponds to the lower limit of the range of parameter values denoted by the set of markers.

HVAC controller 30 may include a communication device (not illustrated in FIG. 1) to allow HVAC controller 30 to communicate via a wired or wireless connection 40 to external computing device 36. The communication device may include a Bluetooth transmitter and receiver, a Wi-Fi transmitter and receiver, a Zigbee transceiver, a near-field communication transceiver, or other circuitry configured to allow HVAC controller 30 to communicate with external computing device 36. In some examples, the communication device may allow HVAC controller 30 to exchange data with external computing device 36. Examples of exchanged data include a desired temperature for building 12, HVAC component(s) 16 connected to HVAC controller 30, error codes, geographic location, estimated energy usage and cost, and/or other operating parameters or system performance characteristics for HVAC system 10.

HVAC controller 30 may communicate via wired or wireless connection 40 with external computing device 36. External computing device 36 may be, include, or otherwise be used in combination with a mobile phone, smartphone, tablet computer, personal computer, desktop computer, personal digital assistant, router, modem, remote server or cloud computing device, and/or related device allowing HVAC controller 30 to communicate over a communication network such as, for example, the Internet or other wired or wireless connection. Communicating via the wired or wireless connection 40 may allow HVAC controller 30 to be configured, controlled, or otherwise exchange data with external computing device 36. In some examples, HVAC controller 30 communicating via wired or wireless connection 40 may allow a user to set up HVAC controller 30 when first installing the controller in building 12. In some examples, HVAC controller 30 and external computing device 36 communicate through a wireless network device such as a router or a switch. In other examples, HVAC controller 30 and external computing device 36 communicate through a wired connection such as an ethernet port, USB connection, or other wired communication network.

HVAC controller 30 may, via the communication device, communicate via a wired or wireless connection 41 with external database 48. In some examples, wired or wireless connection 41 enables HVAC controller 30 to communicate with external database 48 via a wireless connection which includes a network device such as a router, ethernet port, or switch. HVAC controller 30 and external database 48 may also communicate through a wired connection such as an ethernet port, USB connection, or other wired communication network. Communicating via the wired or wireless connection 41 may allow HVAC controller 30 to exchange data with external database 48. As such, external database 48 may be at a location outside of building 12. In some examples, external database 48 may be, include, or otherwise be used in combination with a remote server, cloud computing device, or network of controllers configured to communicate with each other. For example, HVAC controller 30 may receive data from HVAC controllers in nearby buildings through the internet or other city- or wide-area network. HVAC controller 30 may include the onboard database because it is unable to communicate via the communication device.

In some examples, external database 48 may be, or otherwise be included in, or accessed via, external computing device 36 (e.g., smartphone, mobile phone, tablet computer, personal computer, etc.). For example, HVAC controller 30 may communicate via a Wi-Fi network connection with a smartphone device to exchange data with external database 48. By communicating via wired or wireless connection 41, HVAC controller 30 may exchange data with external database 48.

In some examples, HVAC controller 30 may display a setpoint as a bright white light at moving around a perimeter of HVAC controller 30. As dial 32 rotates, the light may move with dial 32 to show a selected setpoint. If the setpoint is changed via a mobile application on one or more of user devices 8, the light may move on HVAC controller 30 to show the selected setpoint. An application of one of user devices 8 may enable a user to view one or more aspects of HVAC controller 30.

In some examples, if a Buoy water valve is installed, HVAC controller 30 may receive details on water usage and leak status. In some examples, if a security system is installed, HVAC controller 30 may control the security system.

FIG. 2 is a block diagram illustrating an example HVAC controller 30 including a dial 32 and an analog display 34, in accordance with one or more techniques described herein. As seen in FIG. 2, HVAC controller 30 includes processing circuitry 42, memory 44, communication circuitry 46, sensor(s) 48, and terminal(s) 52. Sensor(s) 48 may, in some examples, include a temperature sensor 50. In some examples, dial 32 includes LEDs 54. Analog display 34 includes markers 56, LEDs 58, mode button 60, pointer 62, and electric motor 64. In HVAC controller 30 may be configured to communicate with HVAC system 10 via terminal(s) 52 and/or communicate with user devices 8A-8N (collectively, “user devices 8”) via network 6.

HVAC controller 30 may be configured to control HVAC system 10 in order to regulate one or more parameters of a space (e.g., a building, one or more rooms within a building, a large vehicle, or a vessel). In some examples, HVAC controller 30 regulates a temperature within the space. HVAC controller 30 may regulate the temperature of the space by using HVAC system 10 to decrease a temperature of the space if the current temperature of the space is greater than a first set point temperature and/or increase a temperature of the space using HVAC system 10 if the current temperature of the space is less than a second set point temperature. In some examples, the first set point temperature (e.g., a cooling set point temperature) is less than the second set point temperature (e.g., a heating set point temperature). In some examples, the first set point temperature is equal to the second set point temperature.

Processing circuitry 42 may include fixed function circuitry and/or programmable processing circuitry. Processing circuitry 42 may include any one or more of a microprocessor, a controller, a DSP, an ASIC, an FPGA, or equivalent discrete or analog logic circuitry. In some examples, processing circuitry 42 may include multiple components, such as any combination of one or more microprocessors, one or more controllers, one or more DSPs, one or more ASICs, or one or more FPGAs, as well as other discrete or integrated logic circuitry. The functions attributed to processing circuitry 42 herein may be embodied as software, firmware, hardware or any combination thereof.

In some examples, memory 44 includes computer-readable instructions that, when executed by processing circuitry 42, cause HVAC controller 30 and processing circuitry 42 to perform various functions attributed to HVAC controller 30 and processing circuitry 42 herein. Memory 44 may include any volatile, non-volatile, magnetic, optical, or electrical media, such as, for example, RAM, DRAM, SRAM, magnetic discs, optical discs, flash memories, or forms of EPROM or EEPROM. In some examples, the memory is used to store program instructions for execution by the processing circuitry of HVAC controller 30.

Communication circuitry 46 may include any suitable hardware, firmware, software or any combination thereof for communicating with another device, such as user devices 8 or other devices. Under the control of processing circuitry 42, communication circuitry 46 may receive downlink telemetry from, as well as send uplink telemetry to, one of user devices 8 or another device with the aid of an internal or external antenna. Communication circuitry 46 may include a Bluetooth transmitter and receiver, a Wi-Fi transmitter and receiver, a Zigbee transceiver, a near-field communication transceiver, or other circuitry configured to allow HVAC controller 30 to communicate with one or more remote devices such as user devices 8. In some examples, communication circuitry 46 may allow HVAC controller 30 to exchange data with external computing device 123 of FIG. 1. Examples of exchanged data include a desired temperature for the space, one or more control parameters for HVAC system 10, error codes, geographic location, estimated energy usage and cost, and/or other operating parameters or system performance characteristics for HVAC system 10.

In some examples, HVAC controller 30 includes one or more sensor(s) 48 including temperature sensor 50. In some examples, temperature sensor 50 is located within a housing of HVAC controller 30. In some examples, temperature sensor 50 is located remotely from HVAC controller 30 and may communicate with HVAC controller 30 via communication circuitry 46. For example, temperature sensor 50 may be located in the same room or the same area as HVAC controller 30 while being separate from HVAC controller 30 such that heat generated from components of HVAC controller 30 does not affect a temperature signal generated by temperature sensor 50. It may be beneficial for temperature sensor 50 to be located separately from HVAC controller 30 in order to obtain an accurate temperature reading. In some examples where temperature sensor 50 is located within the housing of HVAC controller 30, HVAC controller 30 may prevent components from affecting a temperature signal generated by temperature sensor 50. In some examples, at least a portion of the housing of HVAC controller 30 may include stainless steel and the housing may be coated with a material which hides fingerprints. In some examples, the term “housing” may be used herein to describe an outer surface of HVAC controller 30, including on outer surface of dial 32, an outer surface of analog display 34, and an outer face of HVAC controller 30 which is fixed to a wall or another surface.

In some examples, a housing of HVAC controller 30 may be substantially cylindrical in shape, and dial 32 may represent a ring-shaped piece that is located at an outer circumference of HVAC controller 30. In some examples, HVAC controller 30 includes a first face configured to be mounted on a plate which is fixed to a wall or another surface, a second face including a display, and a third face representing a side of HVAC controller 30, the third face extending around a circumference of HVAC controller 30. Dial 32 may include the third face of HVAC controller 30. In some examples, dial 32 is configured to rotate with respect to one or more other components of HVAC controller 30. For example, dial 32 is configured to rotate with respect to analog display 34. In some examples, dial 32 is configured to rotate in response to a user input. Dial 32 may be electrically connected to dial circuitry (not illustrated in FIG. 2) which may generate an electrical signal indicative of one or more rotational parameters (e.g., a rotational position, a rotational velocity, and/or a rotational acceleration) of dial 32. The dial circuitry may output the electrical signal indicative of the one or more rotational parameters to processing circuitry 42. In some examples, the dial circuitry is part of processing circuitry 42.

Processing circuitry 42 may be configured to set and/or change one or more temperature set points corresponding to the space in which HVAC controller 30 regulates temperature. For example, a first set point temperature may represent a cooling set point temperature and a second set point temperature may represent a heating set point temperature. In some examples, if HVAC controller 30 is cooling and the current temperature is greater than the cooling set point temperature, processing circuitry 42 may control HVAC system 10 to regulate the temperature in the space to approach the cooling set point temperature over a period of time based on the current temperature and the cooling set point temperature. In some examples, if HVAC controller 30 heating and the current temperature is less than the heating set point temperature, processing circuitry 42 may control HVAC system 10 to regulate the temperature in the space to approach the heating set point temperature over a period of time based on the current temperature and the heating set point temperature.

In some example, processing circuitry 42 is configured to receive an instruction to change and/or set one or more temperature set points of HVAC controller 30 from dial circuitry electrically connected to dial 32, where the instruction is indicative of a user selection of one or more temperature set points using dial 32. For example, in response to a first rotation of dial 32, processing circuitry 42 may set the cooling temperature set point value to a first temperature value if a cooling set point mode of HVAC controller 30 is activated. In some examples, HVAC controller 30 includes a mode button (not illustrated in FIG. 2) electrically connected to processing circuitry 42 which is configured to generate a signal based on a user request to switch a set point mode between the cooling set point mode and a heating set point mode. In response to a second rotation of dial 32, processing circuitry 42 may set the heating temperature set point value to a second temperature value if a heating set point mode of HVAC controller 30 is activated. In some examples, processing circuitry 42 is configured to receive an instruction to change and/or set one or more temperature set points of HVAC controller 30 from one or more of user devices 8 via network 6. Processing circuitry 42 may change the one or more temperature set points based on such an instruction.

In some examples, dial 32 includes LEDs 54. LEDs 54 may be, in some cases, a part of dial 32. In some examples, each LED of LEDs 54 may be configured to output an optical signal. LEDs 54 may be arranged in an array around the circumference of dial 32 such that the optical signal output by each LED of LEDs 54 is emitted outwards from a face of HVAC controller 30 which includes analog display 34. In some examples, processing circuitry 42 is configured to cause at least some of LEDs 54 to output an optical signal of a first color when HVAC controller 30 is in a heating set point mode and the current temperature is lower than the heating set point temperature. In some examples, processing circuitry 42 is configured to cause at least some of LEDs 54 to output an optical signal of a second color when HVAC controller 30 is in a cooling set point mode and the current temperature is greater than the cooling set point temperature. In some examples, the first color is red and the second color is blue, but this is not required. Each of the first color and the second color may represent any visible wavelength of light.

In some examples, analog display 34 includes LEDs 58. In some examples, processing circuitry 42 is configured to selectively activate LEDs 58 in order to selectively illuminate one or more of the markers 56. In some examples, processing circuitry 42 selectively illuminates one or more of the set of markers in order to indicate one or more temperature set points (e.g., the cooling set point and/or the heating set point). In some examples, HVAC controller 30 includes LEDs 58 instead of LEDs 54. In some examples, HVAC controller 30 includes both of LEDs 54 and LEDs 58. LEDs 58 may be located behind a surface of analog display 34 which includes the markers 56. In some examples, LEDs 58 may emit optical signals which cause one or more of markers 56 to light up.

In some examples, markers 56 may include a set of temperature markers. The set of temperature markers may represent a range of temperatures. In some examples, the range of temperatures includes a lower-bound temperature and an upper-bound temperature. In some examples, the lower-bound temperature is 50 degrees Fahrenheit (° F.) and the upper-bound temperature is 90° F., but this is not required. The range of temperatures may include any range of temperatures. In some examples, each temperature marker of the set of temperature markers is in the shape of a dash, or a line. The set of temperature markers may be arranged in a semi-circular array the set of temperature markers are equally spaced apart. In some examples, markers 56 may include a set of numeric temperature indicators. Each numeric temperature indicator of the set of numeric temperature indicators may indicate a temperature associated with a respective temperature marker of the set of temperature markers.

In some examples, LEDs 58 may illuminate one or more of the set of temperature markers in order to indicate one or more temperature set points. For example, processing circuitry 42 may cause LEDs 58 to illuminate a first temperature marker of the set of temperature markers to indicate a first temperature set point and illuminate a second temperature marker of the set of temperature markers to indicate a second temperature set point. That is, the first temperature marker may by associated with a first temperature value corresponding to the first temperature set point, and the second temperature marker may by associated with a second temperature value corresponding to the second temperature set point. In some examples, processing circuitry 42 may cause LEDs 58 to change the temperature marker of the set of temperature markers that is illuminated to indicate the first temperature set point. In some examples, processing circuitry 42 may cause LEDs 58 to change the temperature marker of the set of temperature markers that is illuminated to indicate the second temperature set point.

In some examples, HVAC controller 30 may receive one or more inputs to mode button 60. For example, HVAC controller 30 may operate according to a first temperature set point mode and a second temperature set point mode. In some examples, when HVAC controller 30 receives an input to mode button 60, processing circuitry 42 may transition from operating according to the first temperature set point mode to operating according to the second temperature set point mode, or processing circuitry 42 may transition from operating according to the second temperature set point mode to operating according to the first temperature set point mode. When HVAC controller 30 is operating according to the first temperature set point mode, processing circuitry 42 may change a first temperature set point in response to receiving a user input to the dial 32, and when HVAC controller 30 is operating according to the second temperature set point mode, processing circuitry 42 may change a second temperature set point in response to receiving a user input to the dial 32.

For example, processing circuitry 42 may determine whether one or both of a cooling set point mode and a heating set point mode is activated. Processing circuitry 42 may receive a first rotation input to dial 32. When processing circuitry 42 determines that the cooling set point mode is activated, processing circuitry 42 may cause a cooling set point to change from a first cooling set point value to a second cooling set point value in response to receiving a first rotation input to dial 32. Processing circuitry may control LEDs 58 to transition from illuminating a first marker of the set of markers 56 to illuminating a second marker the set of markers 56, wherein the first marker corresponds to the first cooling set point value and the second marker corresponds to the second cooling set point value. When the first cooling set point value is greater than a heating set point value, and when the second cooling set point value is greater than or equal to the heating set point value, processing circuitry 42 may cause the cooling set point to change from the first cooling set point value to the second cooling set point value without changing the heating set point value in response to receiving the first rotation input to dial 32.

Alternatively, when processing circuitry 42 determines that the heating set point mode is activated, processing circuitry 42 may cause a heating set point to change from a first heating set point value to a second heating set point value in response to receiving a first rotation input to dial 32. Processing circuitry may control LEDs 58 to transition from illuminating a first marker of the set of markers 56 to illuminating a second marker the set of markers 56, wherein the first marker corresponds to the first heating set point value and the second marker corresponds to the second heating set point value. When the first heating set point value is less than a cooling set point value, and when the second heating set point value is less than or equal to the cooling set point value, processing circuitry 42 may cause the heating set point to change from the first heating set point value to the second heating set point value without changing the cooling set point in response to receiving the first rotation input to dial 32.

In some examples, it may be beneficial for HVAC controller 30 to always maintain the heating set point to be less than or equal to the cooling set point. For example, if the HVAC controller 30 sets the heating set point to be greater than the cooling set point, the HVAC controller 30 may simultaneously attempt to heat building 12 and cool building 12 when the current temperature is between the heating set point and the cooling set point. Performing only one of heating and cooling is more energy efficient that performing both of heating and cooling at the same time. Consequently, it is beneficial for HVAC controller 30 to maintain the heating set point to be less than or equal to the cooling set point. Consequently, when processing circuitry 42 decreases the cooling set point to be lower than an initial heating set point value, processing circuitry 42 may also decrease the heating set point in unison with the cooling set point. Additionally, or alternatively, when processing circuitry 42 increases the heating set point to be greater than an initial cooling set point value, processing circuitry 42 may also increase the cooling set point in unison with the heating set point.

HVAC controller 30 may control LEDs 58 to indicate a change in the heating set point and/or a change in the cooling set point as the changes are happening. In one example, HVAC controller 30 may decrease the cooling set point by two degrees in response to receiving a rotation input to dial 32, and HVAC controller 30 may control LEDs 58 to show the cooling set point “move” across the set of markers 56. For example, as dial 32 is rotating, HVAC controller 30 may cause LEDs 58 to transition from illuminating a first marker of the set of markers 56 to illuminating a second marker of the set of markers 56, and HVAC controller 30 may cause LEDs 58 to transition from illuminating the second marker of the set of markers 56 to illuminating a third marker of the set of markers 56. The second marker is one degree lower than the first marker, and the third marker is one degree lower than the second marker. As such, a user may view the transition of the set point by observing the set of markers 56. In some examples, LEDs 58 cause an illuminated marker to blink when a set point is changing, but this is not required.

Pointer 62 may extend along a radius of analog display 34 and pointer 62 may be configured to rotate about a center point of analog display 34 such that pointer 62 “points” at one or more markers of the set of markers 56. In some examples, electric motor 64 may receive an electric signal from processing circuitry 42 which causes electric motor 64 to place pointer 62 in order to indicate a current temperature of the space (e.g., an area within building 12) in which HVAC controller 30 is performing temperature regulation using HVAC components 16. In some examples, processing circuitry 42 receives a temperature signal from temperature sensor 50, the temperature signal indicating the current temperature of the space in real-time or near real-time. Processing circuitry 42 may cause electric motor 64 to place (e.g., rotate) the pointer 62 based on the temperature signal in order to indicate the current temperature by pointing pointer 62 at a marker of the set of markers 56 which corresponds to the current temperature. In this way, pointer 62 may point at a marker of the set of markers 56 to indicate the current temperature of space, and LEDs 58 may illuminate one or more markers of the set of markers 56 to indicate one or more respective temperature set points for controlling HVAC components 16 to regulate the temperature within the space.

In some examples, the electric motor 64 represents a stepper motor which is configured to occupy a set of positions, where the number of positions in the set of positions is predetermined for the stepper motor. In one example, a stepper motor may be configured to occupy 360 positions, one position per rotational degree. In this example, the stepper motor would occupy each of the 360 positions to perform one full rotation. It is not required for an electric motor to include 360 positions per one rotation. A stepper motor may include any number of positions per rotation.

HVAC controller 30 may perform a sequence which includes calibrating a position function associated with the electric motor 64 and/or performing a lighting process using any one or combination of LEDs 58. In some examples, HVAC controller 30 may perform the sequence in response to identifying a transition of HVAC controller 30 from a deactivated state to an activated state. In this way, the sequence may be referred to herein as a start-up sequence. However, performing the sequence is not limited to examples is which HVAC controller 30 identifies the transition. HVAC controller 30 may perform the sequence on a scheduled bases or in response to receiving information indicative of a request to perform the sequence.

For example, each marker of the set of markers 56 may correspond to a respective parameter value of a parameter associated with the building 12. The electric motor 64 is configured to rotate the pointer 62 within a pointer range from a lower limit to an upper limit. In some examples, the pointer range represents a portion of analog display 34 over which electric motor 64 is capable of rotating pointer 62. Processing circuitry 42 may determine a position of the electric motor 64 while the pointer 62 is positioned at one of the lower limit or the upper limit of the pointer range. Processing circuitry 42 may calibrate, based on the position of the electric motor 64 while the pointer 62 is positioned at the one of the lower limit or the upper limit, a position function corresponding to the electric motor 64. The position function allows the electric motor 64 to move the pointer 62 to indicate the respective parameter value of the parameter associated with the building 12. In some examples, the parameter comprises temperature, and the respective parameter value comprises a current temperature within an area of the building 12. In some examples, processing circuitry 42 is further configured to output an instruction causing the electric motor 64 to set a position of the pointer 62 in order to indicate the current temperature within the area of the building 12.

In some examples, to determine a position of the electric motor 64 while the pointer 62 is positioned at one of the lower limit or the upper limit of the pointer range, the processing circuitry 42 is configured to determine the position of the electric motor 64 while the pointer 62 is positioned at a first one of the lower limit or the upper limit of the pointer range. In one example, processing circuitry 14 may determine the position of the electric motor 64 while the pointer 62 is positioned the lower limit. In another example, processing circuitry 14 may determine the position of the electric motor 64 while the pointer 62 is positioned the upper limit.

Processing circuitry 42 may determine, subsequent to determining the position of the electric motor 64 while the pointer 62 is positioned at the first one of the lower limit or the upper limit, a position of the electric motor 64 while the pointer 62 is positioned at a second one of the lower limit or the upper limit. For example, if processing circuitry 42 first determines the position of the electric motor 64 while the pointer 62 is positioned at the lower limit of the pointer range, processing circuitry 42 may subsequently determine the position of the electric motor 64 while the pointer 62 is positioned at the upper limit of the pointer range. If processing circuitry 42 first determines the position of the electric motor 64 while the pointer 62 is positioned at the upper limit of the pointer range, processing circuitry 42 may subsequently determine the position of the electric motor 64 while the pointer 62 is positioned at the lower limit of the pointer range.

Processing circuitry 42 may calibrate the position function corresponding to the electric motor 64 based on both of the position of the electric motor 64 while the pointer 62 is positioned at the first one of the lower limit or the upper limit and the position of the electric motor 64 while the pointer 62 is positioned at the second one of the lower limit or the upper limit. The position of the electric motor 64 may represent a current position of a set of rotational positions which electric motor 64 is occupying. Consequently, the position of the electric motor 64 while the pointer 62 is positioned at the first one of the lower limit or the upper limit may represent a first position and the position of the electric motor 64 while the pointer 62 is positioned at the second one of the lower limit or the upper limit may represent a second position. A number of positions may exist between the first position and the second position. Processing circuitry 42 may control electric motor 64 to rotate such that electric motor 64 occupies any one of the first position, the second position, or the number of positions between the first position and the second position.

In some examples, processing circuitry 42 is configured to identify a transition of HVAC controller 30 from a deactivated state to an activated state. Processing circuitry 42 may determine, in response to identifying the transition, the position of the electric motor 64 while the pointer 62 is positioned at the upper limit. Additionally, or alternatively, processing circuitry 42 may determine, in response to identifying the transition, the position of the electric motor 64 while the pointer 62 is positioned at the lower limit.

To determine the position of the electric motor 64 while the pointer 62 is positioned at the lower limit, the processing circuitry 42 is configured to output an instruction to cause the electric motor 64 to rotate the pointer 62 to the lower limit of the pointer range. Subsequently, processing circuitry 42 may receive data indicative of the position of the electric motor 64 while the pointer 62 is positioned at the lower limit of the pointer range. The position of the electric motor 64 may represent a position which electric motor 64 is occupying while pointer 62 is located at the lower limit of the pointer range.

In some examples, the first one of the lower limit or the upper limit comprises the upper limit of the pointer range. To determine the position of the electric motor 64 while the pointer 62 is positioned at the upper limit, the processing circuitry 42 is configured to output an instruction to cause the electric motor 64 to rotate the pointer 62 to the upper limit of the pointer range. Subsequently, processing circuitry 42 is configured to receive data indicative of the position of the electric motor 64 while the pointer 62 is positioned at the upper limit of the pointer range.

The set of markers 56 may correspond to a range of parameter values of the parameter associated with the building 12. To calibrate a position function corresponding to the electric motor 64, the processing circuitry 42 is configured to first set a reference position of the electric motor 64. In one example, the reference position may correspond to the position of the electric motor 64 while the pointer is positioned the lower limit of the pointer range. In another example, the reference position may correspond to the position of the electric motor 64 while the pointer is positioned the upper limit of the pointer range. Subsequently, processing circuitry 42 may determine, based on the reference position, a transfer function which defines a relationship between the parameter associated with the building 12 and the position of the electric motor 64. In some examples, HVAC controller 30 comprises a substantially circular shape including a circumference, wherein the set of markers 56 extend at least partially around the circumference, and wherein the pointer 62 is closer to the center of the circular shape than the set of markers 56.

In some examples, processing circuitry 42 may calculate the transfer function based on one or both of the position which electric motor 64 is occupying while pointer 62 is located at the lower limit of the pointer range and the position which electric motor 64 is occupying while pointer 62 is located at the upper limit of the pointer range. For example, when processing circuitry 42 determines the position which electric motor 64 is occupying while pointer 62 is located at the upper limit of the pointer range, processing circuitry 42 may set the position as an upper limit reference point. Based on the upper limit reference point, processing circuitry 42 may control electric motor 64 to set pointer 62 to indicate any one of markers 56. For example, processing circuitry 42 may apply the transfer function to identify a position of electric motor 64 which sets pointer 62 to indicate a marker of the set of markers 64. Processing circuitry 42 may control electric motor 64 to occupy the determined position so that pointer 62 indicates the marker.

In some examples, LEDs 58 are configured to illuminate any one or combination of the set of markers. Furthermore, one or more projection LEDs (not illustrated in FIG. 2) are configured to emit a halo-shaped projection on the analog display 34. Processing circuitry 42 is configured to output an instruction to activate, while the calibration is occurring, both of LEDs 58 and the set of projection LEDs. Processing circuitry 42 is configured to output, subsequent to the calibration, an instruction to deactivate the set of markers 56 sequentially starting with a center marker of the set of markers 56 and ending with a first marker of the set of markers 56 and a last marker of the set of markers 56.

FIG. 3A is a conceptual diagram illustrating a front view of HVAC controller 30, in accordance with one or more techniques described herein. As seen in FIG. 3A, HVAC controller 30 includes dial 32, analog display 34, and wall plate 70. Analog display 34 includes pointer 62, center plate 66, and a set of markers 102A-102N (collectively, “set of markers 102”). The set of markers 102 may be an example of the set of markers 56 of FIG. 2.

In some examples, HVAC controller 30 includes one or more LEDs (e.g., LEDs 58 of FIG. 2) which may illuminate any one or combination of the set of markers 102 in order to indicate one or more parameter values of the range of parameter values displayed on the surface of analog display 34. Dial 32 may represent a rotatable dial which is located at an outer circumference of analog display 34. For example, dial 32 may rotate about a center of HVAC controller 30 while a surface of analog display 34 remains fixed in place. That is, when dial 32 rotates about the center of HVAC controller 30, the surface of analog display 34 and the wall plate 70 do not rotate. Dial 32 is configured to rotate clockwise and rotate counterclockwise. HVAC controller 30 may control one or more temperature set points based on rotation inputs to dial 32. For example, HVAC controller 30 may increase one or more temperature set points responsive to receiving a clockwise rotation input and HVAC controller 30 may decrease one or more temperature set points responsive to receiving a counterclockwise rotation input. HVAC controller 30 may control one or more other parameters based on rotation inputs to dial 32. For example, HVAC controller 30 may control one or more modes of operation, control one or more humidity set points, or control one or more other set points responsive to rotation inputs to dial 32.

In some examples, the LEDs of HVAC controller 30 may illuminate one or more markers of the set of markers 102 in order to indicate one or more temperature set points. For example, HVAC controller 30 may illuminate a first marker of the set of markers 102 to indicate a first temperature set point and HVAC controller 30 may illuminate a second marker of the set of markers 102 to indicate a second temperature set point. That is, the first marker may correspond to a first temperature value and the second marker may correspond to a second temperature value, where the first temperature set point is the first temperature value and the second temperature set point is the second temperature value. In some examples, the first temperature set point and the second temperature set point are at the same temperature value, and HVAC controller illuminates one marker of the set of markers 102 which corresponds to the temperature value of the first temperature set point and the second temperature set point. In some examples, HVAC controller 30 may indicate more than two temperature set points or indicate less than two temperature set points by illuminating one or more of markers 102.

One or more LEDs may project a ring of light onto a face of analog display 34 from wall plate 70. For example, at least some of the one or more LEDs may project light perpendicular to the face of analog display 34, and a reflective component beneath center plate 66 may reflect the light radially from underneath center plate 66 onto the surface of analog display 34. In this way, the light projected onto the surface of analog display 34 may be in the shape of a halo. As seen in FIG. 3A, the first marker 102A of the set of markers 102 corresponds to a first parameter value of a range of parameter values and the last marker 102N of the set of markers 102 corresponds to a last parameter value of the range of parameter values. In this example, the range of parameter values represents a range of temperatures extending from 50° F. to 90° F. However, this range is not meant to be limiting. Although in the example of FIG. 3A only a four parameter values (e.g., 50, 70, 80, and 90) are displayed, other parameter values are evident based on the relative placement of the parameter values on analog display 34. For example, the group of markers of the set of markers corresponding to a sub-range of parameter values from 50° F. to 90° F. includes 11 markers. In this way, each marker corresponds to one parameter value and the marker preceding the last marker 102N corresponds to 89° F.

An electric motor (e.g., electric motor 64 of FIG. 2) may be located underneath and/or proximate to center plate 66. Electric motor 64 may be configured to move (e.g., rotate) pointer 62 such that pointer 62 indicates a parameter value of the range of parameter values shown on the face of analog display 34. In some examples, the rotation of pointer 62 is confined to an area of analog display 34 which includes the set of markers 102. For example, electric motor 64 may be configured to rotate pointer 62 within a 180 degree range from first marker 102A to second marker 102. In some examples, physical barriers (not illustrated in FIG. 3A) prevent electric motor 64 from rotating pointer 62 beyond first marker 102A or prevent electric motor 64 from rotating pointer 62 beyond the last marker 102N. In the example of FIG. 3A, pointer 62 indicates a marker of the set of markers 102 which corresponds to 70° F. In some examples, HVAC controller 30 controls pointer 62 to indicate a current temperature in a space which HVAC controller 30 regulates. As such, in the example of FIG. 3A, pointer 62 indicates that the current temperature in the space is 70°. HVAC controller 30 may determine a temperature of the space based on a signal received from a temperature sensor (e.g., temperature sensor 50 of FIG. 2). HVAC controller 30 may control electric motor 64 in order to rotate pointer 62 such that pointer 62 indicates the current temperature.

FIG. 3B is a conceptual diagram illustrating an example perspective view of HVAC controller 30, in accordance with one or more techniques described herein. As seen in FIG. 3B, dial 32 is a round component which is located at an outer circumference of the analog display 34, which is also round. Wall plate 70 may be fixed to a wall or another surface. Analog display, dial 32, and other components of HVAC controller 30 may be fixed to wall plate 70 such that HVAC controller 30 is fixed to the wall or another surface. In some examples, wall plate 70 and analog display 34 are configured to remain fixed in one place, whereas dial 32 and pointer 62 are configured to rotate about a center of HVAC controller 30. At least a portion of controller 30 may be substantially cylindrical in shape, with a front face including analog display 34, a side face including dial 32 which is rotatable with respect to analog display 34, and a back face which is fixed to wall plate 70. The controller illustrated in FIGS. 3A-3B is one example of controller 30 of FIGS. 1-2, but controller 30 of FIGS. 3A-3B is not meant to be limited to the example of FIGS. 3A-3B. HVAC controller 30 may include other example controllers not illustrated in FIGS. 3A-3B.

FIG. 4 is a conceptual diagram illustrating a sequence of configurations of HVAC controller 30 which represent a calibration process for HVAC controller 30, in accordance with one or more techniques described herein. For example, FIG. 4 includes configuration 402, configuration 404, configuration 406, configuration 408, configuration 410, configuration 412, and configuration 414, which all represent possible configurations of the light emitted by analog display 34 and possible configurations of a position of pointer 62. In some examples, an electric motor (e.g., electric motor 64 of FIG. 2) is connected to pointer 62 and the electric motor 64 controls pointer 62 to rotate within a pointer range. As seen in FIG. 4, analog display includes a set of markers 102 which extend from marker 102A to marker 102N. Marker 102A corresponds to a temperature of 50° F. and marker 102N corresponds to a temperature of 90° F., meaning that pointer 62 may indicate any temperature within a range from 50° F. to 90° F. However, this range is not meant to be limiting. Markers 102 may indicate any range of parameter values.

Configuration 402 represents a possible configuration of HVAC controller 30 while HVAC controller 30 is in a deactivated state. While in the deactivated state, in some cases, the LEDs of HVAC controller 30 (e.g., LEDs 58) might not emit light to illuminate one or more of the set of markers 102 and/or project light onto a surface of analog display 34. Additionally, or alternatively, in some cases, processing circuitry 42 of HVAC controller 30 might not have access to information indicating a rotational position of the electric motor 64 and the pointer 62 relative to the set of markers 102. Configuration 404 represents a possible configuration of HVAC controller 30 following a transition of HVAC controller 30 from a deactivated state to an activated state. As seen in configuration 404, LEDs of HVAC controller 30 project halo 430 onto a surface of analog display 34, and markers 102 are illuminated following the transition of HVAC controller 30 from the deactivated state (configuration 402) to the activated state (configuration 404). In some examples, LEDs 58 illuminate the set of markers 102 and a set of projection LEDs project halo 430 onto the surface of analog display 34. LEDs 58 and the set of projection LEDs may transition from emitting no light to emitting a maximum intensity of light over a period of time, such as within a range from 0.5 seconds to 1.5 seconds. The LEDs may, for example, brighten over a period of one second. Additionally, or alternatively, one or more LEDs illuminating indicators 72 may brighten over a period of time such as one second.

In some examples, HVAC controller 30 may perform a calibration process in order to determine a rotational position of the electric motor 64 and calculate a transfer function which may be used to position pointer 62 to accurately indicate a parameter value, such as a temperature or humidity value. To perform the calibration process, processing circuitry 42 of HVAC controller 30 may control electric motor 64 to rotate pointer 62 to an upper limit of a pointer range. In the example of FIG. 4, the pointer range may extend from marker 102A to marker 102N. That is, electric motor 64 may rotate pointer 62 such that pointer 62 points at any one of markers 102, but electric motor 64 might not be able to rotate pointer 62 such that pointer 62 points at the “bottom” half of analog display 34. For example, a physical barrier may prevent electric motor 64 from rotating pointer 62 counterclockwise from marker 102A and a physical barrier may prevent electric motor 64 from rotating pointer 62 clockwise from marker 102N.

As seen in configuration 406, electric motor 64 rotates pointer 62 clockwise to the upper bound of the pointer range, which corresponds to marker 102N. In some examples, a physical barrier (not illustrated in FIG. 4) prevents electric motor 64 from rotating pointer 62 past the upper bound of the pointer range. In some examples, processing circuitry 42 of HVAC controller 30 may be configured to identify when electric motor 64 rotates pointer 62 to the upper bound of the pointer range, and the processing circuitry may associate the position of electric motor 64 with an upper limit of the range of parameter values shown on analog display 34. For example, HVAC controller 30 may identify the position of electric motor 64 when pointer 62 is at an upper limit of the pointer range.

HVAC controller 30 may rotate pointer 62 counterclockwise from the upper bound of the pointer range to a lower bound of the pointer range in order to transition from configuration 406 to configuration 408. As seen in FIG. 4, the lower bound of the pointer range corresponds to marker 102A. In some examples, a physical barrier may (not illustrated in FIG. 4) prevent electric motor 64 from rotating pointer 62 past the lower bound of the pointer range. In some examples, processing circuitry of HVAC controller 30 may be configured to identify a rotational position of electric motor 64 when pointer 62 is at the lower bound of the pointer range, and the processing circuitry 42 may associate the rotational position of electric motor 64 with a lower limit of the range of parameter values shown on analog display 34. The rotational position of electric motor 64 when pointer 62 is at the lower bound of the pointer range may represent a position which electric motor 64 occupies when pointer 62 is at the lower bound of the pointer range.

In some examples, HVAC controller 30 may determine the rotational position of the electric motor 64 based on a position which electric motor 64 is occupying. For example, the electric motor 64 may represent a stepper motor which is configured to occupy a set of positions. A stepper motor may include any number of positions per rotation. As long as HVAC controller 30 is configured to determine the number of positions per rotation, HVAC controller 30 may be configured to determine a number of positions in which to rotate electric motor 64 in order to achieve a certain amount of rotation. For example, HVAC controller 30 may receive information indicative of a request to rotate electric motor 64 clockwise by 20% of a full rotation. Based on the known number of positions per rotation, HVAC controller 30 may calculate the number of positions which corresponds to 20% of a full rotation and output an instruction to rotate electric motor 64 clockwise by the calculated number of positions.

Although HVAC controller 30 may be configured to determine a relative number of positions in which to rotate the electric motor 64, in some cases, HVAC controller 30 might not be able to immediately determine, after an activation of HVAC controller 30, a relative rotational position of the electric motor 64 in relation to the set of markers 102 located on the analog display 34. HVAC controller 30 may be configured to perform the calibration process in order to determine the relative rotational position of the electric motor 64 in relation to the set of markers 102 on the analog display. In some examples, the electric motor 64 may be coupled to pointer 62 which extends radially from a center of HVAC controller 30 such that the electric motor 64 is configured to control a rotation of the pointer 62. As an example, the pointer 62 may be fixed to the electric motor 64 or fixed to a component which is fixed to electric motor 64 such that the pointer 62 rotates with the electric motor 64. In such an example, a 20-degree rotation of electric motor 64 may correspond to a 20-degree rotation of pointer 62.

In some examples, HVAC controller 30 may generate, based on the determined position of the rotational position of pointer 62 at the lower bound of the pointer range and the position of the rotational position of pointer 62 at the upper bound of the pointer range, a transfer function which allows processing circuitry of HVAC controller 30 to set a rotational position of pointer 62 in order to accurately indicate a parameter value of the range of parameter values represented by the analog display of HVAC controller 30. Subsequent to generating the transfer function, HVAC controller 30 may transition to configuration 410, where pointer 62 is indicating a parameter value within the range of parameter values represented on analog display 34. In some examples, the range of parameter values represents a range of temperatures, and pointer 62 indicates a current temperature value proximate to HVAC controller 30 while occupying configuration 410, however this is not required. At the point of configuration 410, the calibration of a position function corresponding to the electric motor 64 may be complete. At configuration 412, HVAC controller 30 may sequentially deactivate the LEDs which illuminate the set of markers 102 over a period of time. In some examples, the period of time is one second. For example, controller 30 may first deactivate the marker corresponding to 70° F., which is at the top of HVAC controller 30. Subsequently, HVAC controller 30 may deactivate set of markers in a cascading fashion. At the same time, HVAC controller 30 may fade LEDs illuminating indicators 72 until indicators 72 are no longer visible. At configuration 414, the start-up sequence is complete.

FIG. 5 is a conceptual diagram illustrating a first configuration 502 and a second configuration 504 of a lighting process, in accordance with one or more techniques described herein. In some cases, the first configuration 502 and the second configuration 504 may be examples of the lighting cascade configuration 412 of FIG. 4. For example, the transition from configuration 502 to configuration 504 may take place over a period of time. The top marker 102B, corresponding to 70° F. may be deactivated first. The two markers adjacent to top marker 102B may be deactivated after top marker 102B is deactivated, and the rest of the markers may be deactivated sequentially until the first marker 102A and the last marker 102N are the only markers left illuminated. The first marker 102A and the last marker 102N may be deactivated to complete the lighting process. During the cascading deactivation of markers 102, the LEDs illuminating one or more indicators may be faded until the indicators are no longer visible.

FIG. 6 is a flow diagram illustrating an example process for calibrating HVAC controller 30, in accordance with one or more techniques described herein. Although the process of FIG. 6 is described with respect to HVAC controller 30 of FIG. 2, the process may be performed using another controller or other devices.

In some examples, processing circuitry of HVAC controller 30 may be configured to determine a position of an electric motor 64 while a pointer 62 is positioned at one or a lower limit or an upper limit of a pointer range associated with a set of analog markers 102 (602). In some examples, HVAC controller 30 may first determine the position of electric motor 64 while pointer 62 is placed at the upper limit of the pointer range and subsequently determine the position of electric motor 64 while pointer 62 is placed at the lower limit of the pointer range, but this is not required. In some examples, HVAC controller 30 may first determine the position of electric motor 64 while pointer 62 is placed at the lower limit of the pointer range and subsequently determine the position of electric motor 64 while pointer 62 is placed at the upper limit of the pointer range. In some examples, HVAC controller 30 may determine the position of electric motor 64 while pointer 62 is placed at the lower limit of the pointer range without determining the position of electric motor 64 while pointer 62 is placed at the upper limit of the pointer range. In some examples, HVAC controller 30 may determine the position of electric motor 64 while pointer 62 is placed at the upper limit of the pointer range without determining the position of electric motor 64 while pointer 62 is placed at the lower limit of the pointer range.

HVAC controller 30 may calibrate a position function corresponding to electric motor 64 (604) based on one or both of the position of electric motor 64 while pointer 62 is placed at the upper limit of the pointer range or the position of electric motor 64 while pointer 62 is placed at the lower limit of the pointer range. In some examples, to calibrate the position function corresponding to electric motor 64, HVAC controller 30 may generate a transfer function which establishes a relationship between a position of electric motor 64 and the range of parameter values shown on analog display 34. HVAC controller 30 may indicate a parameter value of a range of parameter values corresponding to the set of analog markers (606).

It is to be recognized that depending on the example, certain acts or events of any of the techniques described herein can be performed in a different sequence, may be added, merged, or left out altogether (e.g., not all described acts or events are necessary for the practice of the techniques). Moreover, in certain examples, acts or events may be performed concurrently, e.g., through multi-threaded processing, interrupt processing, or multiple processors, rather than sequentially.

In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which corresponds to a tangible medium such as data storage media, or communication media including any medium that facilitates transfer of a computer program from one place to another, e.g., according to a communication protocol. In this manner, computer-readable media generally may correspond to (1) tangible computer-readable storage media which is non-transitory or (2) a communication medium such as a signal or carrier wave. Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code and/or data structures for implementation of the techniques described in this disclosure. A computer program product may include a computer-readable medium.

By way of example, and not limitation, such computer-readable storage media can include one or more of RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. It should be understood, however, that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transitory media, but are instead directed to non-transitory, tangible storage media. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc, where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.

Instructions may be executed by one or more processors, such as one or more DSPs, general purpose microprocessors, ASICs, FPGAs, or other equivalent integrated or discrete logic circuitry. Accordingly, the term “processor” or “processing circuitry,” as used herein may refer to any of the foregoing structure or any other structure suitable for implementation of the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within dedicated hardware and/or software modules. Also, the techniques could be fully implemented in one or more circuits or logic elements.

The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC) or a set of ICs (e.g., a chip set). Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require realization by different hardware units. Rather, as described above, various units may be combined in a single hardware unit or provided by a collection of interoperative hardware units, including one or more processors as described above, in conjunction with suitable software and/or firmware.

Various examples have been described. These and other examples are within the scope of the following claims. 

What is claimed is:
 1. A device for controlling a heating, ventilation, and air conditioning (HVAC) system within a building, the device comprising: an analog display comprising a set of markers, wherein each marker of the set of markers corresponds to a respective parameter value of a parameter associated with the building; an electric motor; a pointer connected to the electric motor, wherein the electric motor is configured to rotate the pointer within a pointer range from a lower limit to an upper limit; and processing circuitry configured to: determine a position of the electric motor while the pointer is positioned at one of the lower limit or the upper limit of the pointer range; and calibrate, based on the position of the electric motor while the pointer is positioned at the one of the lower limit or the upper limit, a position function corresponding to the electric motor to configure the electric motor to move the pointer to indicate the respective parameter value of the parameter associated with the building.
 2. The device of claim 1, wherein the one of the lower limit or the upper limit represents a first one of the lower limit or the upper limit, and wherein the processing circuitry is further configured to: determine, subsequent to determining the position of the electric motor while the pointer is positioned at the first one of the lower limit or the upper limit, a position of the electric motor while the pointer is positioned at a second one of the lower limit or the upper limit; and calibrate the position function corresponding to the electric motor based on both of the position of the electric motor while the pointer is positioned at the first one of the lower limit or the upper limit and the position of the electric motor while the pointer is positioned at the second one of the lower limit or the upper limit.
 3. The device of claim 2, wherein the first one of the lower limit or the upper limit comprises the upper limit of the pointer range, and wherein the second one of the lower limit or the upper limit comprises the lower limit of the pointer range.
 4. The device of claim 2, wherein the first one of the lower limit or the upper limit comprises the lower limit of the pointer range, and wherein the second one of the lower limit or the upper limit comprises the upper limit of the pointer range.
 5. The device of claim 2, wherein the processing circuitry is further configured to: identify a transition of the device from a deactivated state to an activated state; determine, in response to identifying the transition, the position of the electric motor while the pointer is positioned at the upper limit; and determine, in response to identifying the transition, the position of the electric motor while the pointer is positioned at the lower limit.
 6. The device of claim 2, wherein to determine the position of the electric motor while the pointer is positioned at the lower limit, the processing circuitry is configured to: output an instruction to cause the electric motor to rotate the pointer to the lower limit of the pointer range; and receive data indicative of the position of the electric motor while the pointer is positioned at the lower limit of the pointer range.
 7. The device of claim 2, wherein the first one of the lower limit or the upper limit comprises the upper limit of the pointer range, and wherein to determine the position of the electric motor while the pointer is positioned at the upper limit, the processing circuitry is configured to: output an instruction to cause the electric motor to rotate the pointer to the upper limit of the pointer range; and receive data indicative of the position of the electric motor while the pointer is positioned at the upper limit of the pointer range.
 8. The device of claim 1, wherein the parameter comprises temperature, and wherein the respective parameter value comprises a current temperature within an area of the building.
 9. The device of claim 8, wherein the processing circuitry is further configured to: output an instruction causing the electric motor to set a position of the pointer in order to indicate the current temperature within the area of the building.
 10. The device of claim 1, wherein the set of markers corresponds to a range of parameter values of the parameter associated with the building, and wherein to calibrate the position function corresponding to the electric motor, the processing circuitry is configured to: set a reference position of the electric motor corresponding to the position of the electric motor while the pointer is positioned at the one of the lower limit or the upper limit of the pointer range; determine, based on the reference position, a transfer function which defines a relationship between the parameter associated with the building and the position of the electric motor.
 11. The device of claim 1, wherein the device comprises a substantially circular shape including a circumference, wherein the set of markers extend at least partially around the circumference, and wherein the pointer is closer to the center of the circular shape than the set of markers.
 12. The device of claim 1, further comprising: a first set of light-emitting diodes (LEDs) configured to illuminate any one or combination of the set of markers; and a second set of LEDs configured to emit a halo-shaped projection on the analog display, and wherein the processing circuitry is configured to: output an instruction to activate, while the calibration is occurring, both of the first set of LEDs and the second set of LEDs; and output, subsequent to the calibration, an instruction to deactivate the set of markers sequentially starting with a center marker of the set of markers and ending with a first marker of the set of markers and a last marker of the set of markers.
 13. The device of claim 1, wherein the processing circuitry is configured to calibrate the position function in response to the device transitioning from a deactivated state to an activated state.
 14. A device for controlling a heating, ventilation, and air conditioning (HVAC) system within a building, the device comprising: an analog display comprising a set of markers, wherein each marker of the set of markers corresponds to a respective parameter value of a parameter associated with the building; an electric stepper motor; a pointer connected to the electric stepper motor, wherein the electric stepper motor is configured to rotate the pointer within a pointer range from a lower limit to an upper limit; and processing circuitry configured to: cause the electric stepper motor to position the pointer at one of the lower limit or the upper limit of the pointer range; determine an initial value for the parameter; and cause the electric stepper motor to move the pointer from the one of the lower limit or the upper limit of the pointer range to the marker corresponding to the determined initial value for the parameter.
 15. The device of claim 14, wherein the processing circuitry is further configured to: determine a second value for the parameter; cause the electric stepper motor to move the pointer from the marker corresponding to the determined initial value for the parameter to the marker corresponding to the determined second value for the parameter.
 16. The device of claim 14, wherein the processing circuitry is further configured to: based on a difference between the initial value for the parameter and a value of the parameter associated with the one of the lower limit or the upper limit, determine a number of positions to cause the electric stepper motor to move the pointer from the one of the lower limit or the upper limit of the pointer range to the marker corresponding to the determined initial value for the parameter; and cause the electric stepper motor to move the determined number of positions.
 17. The device of claim 14, further comprising: a physical stopper that prevents the pointer from moving beyond the one of lower limit or the upper limit; and wherein the processing circuitry is configured to cause the electric stepper motor to position the pointer at one of the lower limit or the upper limit of the pointer range by moving the pointer until the pointer is stopped by the physical stopper.
 18. A method comprising: determining, by processing circuitry, a position of an electric motor while a pointer is positioned at one of the lower limit or the upper limit of the pointer range, wherein the pointer is connected to the electric motor, and wherein the electric motor is configured to rotate the pointer within a pointer range from a lower limit to an upper limit; and calibrating, by the processing circuitry based on the position of the electric motor while the pointer is positioned at the one of the lower limit or the upper limit, a position function corresponding to the electric motor to configure the electric motor to move the pointer to indicate the respective parameter value of the parameter associated with the building, wherein an analog display comprises a set of markers, and wherein each marker of the set of markers corresponds to a respective parameter value of a parameter associated with the building.
 19. The method of claim 18, wherein the one of the lower limit or the upper limit represents a first one of the lower limit or the upper limit, and wherein the method further comprises: determining, by the processing circuitry subsequent to determining the position of the electric motor while the pointer is positioned at the first one of the lower limit or the upper limit, a position of the electric motor while the pointer is positioned at a second one of the lower limit or the upper limit; and calibrating, by the processing circuitry, the position function corresponding to the electric motor based on both of the position of the electric motor while the pointer is positioned at the first one of the lower limit or the upper limit and the position of the electric motor while the pointer is positioned at the second one of the lower limit or the upper limit.
 20. The method of claim 19, wherein method further comprises: identifying, by the processing circuitry, a transition of the device from a deactivated state to an activated state; determining, by the processing circuitry in response to identifying the transition, the position of the electric motor while the pointer is positioned at the upper limit; and determining, by the processing circuitry in response to identifying the transition, the position of the electric motor while the pointer is positioned at the lower limit. 